﻿using System;
using DAL;
using VO;
using COMMON;
using System.Linq;

namespace BLL
{
    public class CampanhaStatusBLL
    {

        #region Insert
        public static Retorno<CampanhaStatus> Insert(CampanhaStatus obj)
        {
            var objReturn = new Retorno<CampanhaStatus>();
            try
            {
                //Insere Campanha
                objReturn.ID = new CampanhaStatusDAL().Insert(obj);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region Delete
        public static Retorno<CampanhaStatus> Delete(int idCampanhaStatus)
        {
            var objReturn = new Retorno<CampanhaStatus>();
            try
            {
                //Deleta Campanha
                new CampanhaStatusDAL().Delete(idCampanhaStatus);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion


        #region Update
        public static Retorno<CampanhaStatus> Update(CampanhaStatus obj)
        {
            var objReturn = new Retorno<CampanhaStatus>();
            try
            {
                //Altera Status Campanha
                new CampanhaStatusDAL().Update(obj);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region Select
        public static Retorno<CampanhaStatus> Select(int idCampanha)
        {
            var objReturn = new Retorno<CampanhaStatus>();
            try
            {
                //Lista Campanha
                objReturn.List = new CampanhaStatusDAL().Select(idCampanha);
                if (objReturn.List.Count > 0)
                {
                    objReturn.Error = Enumerator.Error.Success;
                    objReturn.Message = "OK";
                }
                else
                {
                    objReturn.Error = Enumerator.Error.NoRegistry;
                    objReturn.Message = "Sem registro";
                }
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }

        public static Retorno<CampanhaStatus> Select(int idCampanha, int idStatus)
        {
            var objReturn = new Retorno<CampanhaStatus>();
            try
            {
                //Lista Campanha
                objReturn.List = new CampanhaStatusDAL().Select(idCampanha, idStatus);
                if (objReturn.List.Count > 0)
                {
                    objReturn.Error = Enumerator.Error.Success;
                    objReturn.Message = "OK";                    
                }
                else
                {
                    objReturn.Error = Enumerator.Error.NoRegistry;
                    objReturn.Message = "Sem registro";
                }
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region CopiaStatus
        public static Retorno<CampanhaStatus> CopiaStatus(int idCampanha, int idCampanhaNova)
        {
            var objReturn = new Retorno<CampanhaStatus>();
            try
            {
                //Copia status de uma campanha para outra
                new CampanhaStatusDAL().CopiaStatus(idCampanha, idCampanhaNova);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

    }
}